package com.javaweb.web.service.impl;

import java.util.List;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.javaweb.base.BaseDao;
import com.javaweb.base.po.Config;
import com.javaweb.constant.CommonConstant;
import com.javaweb.util.entity.Page;
import com.javaweb.web.eo.config.ConfigListRequest;
import com.javaweb.web.service.ConfigService;

/**
 * 配置模块业务层接口实现
 * 
 * @author tank2140896
 */
@Service("configServiceImpl")
public class ConfigServiceImpl extends BaseDao implements ConfigService {

	/**
	 * 获取所有配置信息列表业务层接口实现
	 * 
	 * @return List<Config> 配置信息列表
	 */
	@Override
    public List<Config> selectAll() {
		return configDao.selectAll();
    }

	/**
	 * 配置信息查询业务层接口实现
	 * 
	 * @param config 配置查询请求参数
	 * @return List<Config> 配置信息列表
	 */
	@Override
    public List<Config> getConfig(Config config) {
        return configDao.getConfig(config);
    }

	/**
	 * 配置新增业务层接口实现
	 * 
	 * @param config 配置新增请求参数
	 */
    @Transactional
    @Override
	public void configAdd(Config config) {
    	configDao.insert(config);
	}
	
	/**
	 * 配置信息查询业务层接口实现
	 * 
	 * @param configListRequest 配置列表请求参数
	 * @return Page 分页参数
	 */
    @Override
	public Page configList(ConfigListRequest configListRequest){
		List<Config> list = configDao.configList(configListRequest);
		Long count = configDao.configCount(configListRequest);
		Page page = new Page(configListRequest,list,count);
		return page;
	}

	/**
	 * 配置修改业务层接口实现
	 * 
	 * @param config 配置修改请求参数
	 */
	@Transactional
	@Override
	public void configModify(Config config) {
		configDao.update(config);
	}

	/**
	 * 配置详情业务层接口实现
	 * 
	 * @param configId 配置ID
	 * @return Config 配置信息
	 */
	@Override
	public Config configDetail(String configId) {
		return configDao.selectByPk(configId);
	}

	/**
	 * 配置删除业务层接口实现
	 * 
	 * @param configId 配置ID
	 */
	@Transactional
	@Override
	public void configDelete(String configId) {
		String configIdIds[] = configId.split(CommonConstant.COMMA);
		for(String id:configIdIds){
			configDao.delete(id);
		}
	}
	
}
